#ifndef UNITTEST_EXCEPTIONMACROS_HPP
#define UNITTEST_EXCEPTIONMACROS_HPP

#define UNITTEST_IMPL_TRY(x) try x
#define UNITTEST_IMPL_THROW(x) throw x
#define UNITTEST_IMPL_RETHROW(ExceptionType) catch(ExceptionType&) { throw; }
#define UNITTEST_IMPL_CATCH(ExceptionType, ExceptionName, CatchBody) catch(ExceptionType& ExceptionName) CatchBody
#define UNITTEST_IMPL_CATCH_ALL(CatchBody) catch(...) CatchBody

#endif /* UNITTEST_EXCEPTIONMACROS_HPP */
